/*****
 *    用途：检查输入对象的值是否符合E-Mail格式
 *    输入：str 输入的字符串
 *    返回：如果通过验证返回true,否则返回false
 */
function f_check_email(objvalue) {
    var myReg = /^([-_A-Za-z0-9\.]+)@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;

    if (myReg.test(objvalue)) return true;

    return false;
}

/* 18.判断是否为邮政编码 */
function f_check_zipcode(objvalue) {
    if (!f_check_number(objvalue))
        return false;

    if (objvalue.length != 6) {
        return false;
    }

    return true;
}

function f_check_number(objvalue) {
    if (!/^\d+$/.test(objvalue))return false;

    return true;
}

function checkZeroLength(objectvalue) {
    if (strLen(objectvalue) == 0)return true;

    return false;
}

function strLen(str) {
    var i;
    var len;

    len = 0;

    for (i = 0; i < str.length; i++) {
        if (str.charCodeAt(i) > 255)
            len += 3;
        else
            len++;
    }

    return len;
}
//去掉空格
String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

//去掉回车
String.prototype.removeenter = function() {
    return this.replace(/(^\s*|\n|\r)|(\s*|\n|\r$)/g, "");
}

/**
 * created by cryil on 2008-01-30
 * 格式化日期，调用方式 new Date().format('yyyy-MM-dd')
 * @param {Object} format
 * @return String
 */
Date.prototype.format = function(format) {
    var o = {
        "M+" : this.getMonth() + 1, //month
        "d+" : this.getDate(),    //day
        "h+" : this.getHours(),   //hour
        "m+" : this.getMinutes(), //minute
        "s+" : this.getSeconds(), //second
        "q+" : Math.floor((this.getMonth() + 3) / 3),  //quarter
        "S" : this.getMilliseconds() //millisecond
    }

    if (/(y+)/.test(format))
        format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));

    for (var k in o)if (new RegExp("(" + k + ")").test(format))
        format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));

    return format;
}


/*
 * 判断是否为自然数，是则返回true,否则返回false
 */
function f_check_naturalnumber(objvalue) {
    var s = objvalue;
    if (/^[0-9]+$/.test(s) && (s > 0))
        return true;

    return false;
}


/*
 * 判断是否为整数，是则返回true,否则返回false
 */
function f_check_integer(objvalue) {
    if (/^(\+|-)?\d+$/.test(objvalue))
        return true;

    return false;
}


/*
 * 判断是否为实数，是则返回true,否则返回false
 */
function f_check_float(objvalue) {
    if (/^(\+|-)?\d+($|\.\d+$)/.test(objvalue))
        return true;

    return false;
}

/*
 用途：检查输入字符串是否只由汉字组成
 如果通过验证返回true,否则返回false
 */
function f_check_zh(objvalue) {
    if (/^[\u4e00-\u9fa5]+$/.test(objvalue))
        return true;

    return false;
}


/*
 * 判断是否为小写英文字母，是则返回true,否则返回false
 */
function f_check_lowercase(objvalue)
{
    if (/^[a-z]+$/.test(objvalue))
        return true;

    return false;
}


/*
 * 判断是否为大写英文字母，是则返回true,否则返回false
 */
function f_check_uppercase(objvalue)
{
    if (/^[A-Z]+$/.test(objvalue))
        return true;

    return false;
}


/*
 * 判断是否为英文字母，是则返回true,否则返回false
 */
function f_check_letter(objvalue)
{
    if (/^[A-Za-z]+$/.test(objvalue))
        return true;

    return false;
}


/*
 用途：检查输入字符串是否只由汉字、字母、数字组成
 输入：
 value：字符串
 返回：
 如果通过验证返回true,否则返回false
 */
function f_check_ZhOrNumOrLett(objvalue) {    //判断是否是汉字、字母、数字组成
    var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";
    var re = new RegExp(regu);
    if (re.test(objvalue))
        return true;

    return false;
}

/**
 *检验输入的字符串是否由字母数字组成
 输入:
 字符串
 返回:
 如果通过验证返回true,否则返回false
 **/
function f_check_NumberOrLetter(objvalue) {    //判断是否是汉字、字母、数字组成
    var regu = "^[0-9a-zA-Z]+$";
    var re = new RegExp(regu);
    if (re.test(objvalue))
        return true;

    return false;
}


/*
 用途：检查输入对象的值是否符合网址格式
 输入：str 输入的字符串
 返回：如果通过验证返回true,否则返回false
 */
function f_check_URL(objvalue) {
    var myReg = /^((http:[/][/])?\w+([.]\w+|[/]\w*)*)?$/;
    if (myReg.test(objvalue)) return true;

    return false;
}


/*
 要求：一、移动电话号码为11或12位，如果为12位,那么第一位为0
 二、11位移动电话号码的第一位和第二位为"13"
 三、12位移动电话号码的第二位和第三位为"13"
 用途：检查输入手机号码是否正确
 输入：
 s：字符串
 返回：
 如果通过验证返回true,否则返回false
 */
function f_check_mobile(objvalue) {
    var regu = /(^[1][3][0-9]{9}$)|(^0[1][3][0-9]{9}$)/;
    var re = new RegExp(regu);
    if (re.test(objvalue))
        return true;

    return false;
}


/*
 要求：一、电话号码由数字、"("、")"和"-"构成
 二、电话号码为3到8位
 三、如果电话号码中包含有区号，那么区号为三位或四位
 四、区号用"("、")"或"-"和其他部分隔开
 用途：检查输入的电话号码格式是否正确
 输入：
 strPhone：字符串
 返回：
 如果通过验证返回true,否则返回false
 */
function f_check_phone(objvalue) {
    var regu = /(^([0][1-9]{2,3}[-])?\d{3,8}(-\d{1,6})?$)|(^\([0][1-9]{2,3}\)\d{3,8}(\(\d{1,6}\))?$)|(^\d{3,8}$)/;
    var re = new RegExp(regu);
    if (re.test(objvalue))
        return true;

    return false;
}

/*
 功能：验证身份证号码是否有效
 提示信息：未输入或输入身份证号不正确！
 使用：f_check_IDno(obj)
 返回：bool
 */
function f_check_IDno(objvalue)
{
    var aCity = {11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外 "};
    var iSum = 0;
    var info = "";
    var strIDno = objvalue;
    var idCardLength = strIDno.length;
    if (!/^\d{17}(\d|x)$/i.test(strIDno) && !/^\d{15}$/i.test(strIDno))
        return false;

    //在后面的运算中x相当于数字10,所以转换成a
    strIDno = strIDno.replace(/x$/i, "a");

    if (aCity[parseInt(strIDno.substr(0, 2))] == null)
        return false;

    if (idCardLength == 18) {
        sBirthday = strIDno.substr(6, 4) + "-" + Number(strIDno.substr(10, 2)) + "-" + Number(strIDno.substr(12, 2));
        var d = new Date(sBirthday.replace(/-/g, "/"))
        if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate()))
            return false;

        for (var i = 17; i >= 0; i --)
            iSum += (Math.pow(2, i) % 11) * parseInt(strIDno.charAt(17 - i), 11);

        if (iSum % 11 != 1)
            return false;

    } else if (idCardLength == 15) {
        sBirthday = "19" + strIDno.substr(6, 2) + "-" + Number(strIDno.substr(8, 2)) + "-" + Number(strIDno.substr(10, 2));
        var d = new Date(sBirthday.replace(/-/g, "/"))
        var dd = d.getFullYear().toString() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
        if (sBirthday != dd)
            return false;
    }

    return true;
}

/*
 功能：判断是否为日期(格式:yyyy年MM月dd日,yyyy-MM-dd,yyyy/MM/dd,yyyyMMdd)
 提示信息：未输入或输入的日期格式错误！
 使用：f_check_date(obj)
 返回：bool
 */
function f_check_date(obj)
{
    var date = obj.value.trim();
    var dtype = obj.eos_datatype;
    var format = dtype.substring(dtype.indexOf("(") + 1, dtype.indexOf(")"));  //日期格式
    var year,month,day,datePat,matchArray;

    if (/^(y{4})(-|\/)(M{1,2})\2(d{1,2})$/.test(format))
        datePat = /^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
    else if (/^(y{4})(年)(M{1,2})(月)(d{1,2})(日)$/.test(format))
        datePat = /^(\d{4})年(\d{1,2})月(\d{1,2})日$/;
    else if (format == "yyyyMMdd")
            datePat = /^(\d{4})(\d{2})(\d{2})$/;
        else
            return false;

    matchArray = date.match(datePat);
    if (matchArray == null)
        return false;

    if (/^(y{4})(-|\/)(M{1,2})\2(d{1,2})$/.test(format)) {
        year = matchArray[1];
        month = matchArray[3];
        day = matchArray[4];
    } else {
        year = matchArray[1];
        month = matchArray[2];
        day = matchArray[3];
    }

    if (month < 1 || month > 12) {
        return false;
    }

    if (day < 1 || day > 31) {
        return false;
    }

    if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) {
        return false;
    }

    if (month == 2) {
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day > 29) {
            return false;
        }

        if ((day == 29) && (!isleap)) {
            return false;
        }
    }

    return true;
}


/*判断当前对象是否可见*/
function isVisible(obj) {
    var visAtt,disAtt;
    try {
        disAtt = obj.style.display;
        visAtt = obj.style.visibility;
    } catch(e) {
    }

    if (disAtt == "none" || visAtt == "hidden")
        return false;

    return true;
}

/**
 * 检测字符串是否为空
 */
function isNullOrEmpty(str) {
    str = Trim(str);
    if (str.length == 0)
        return true;

    return false
}


//去左空格
function LTrim(str) {
    return str.replace(/^\s*/g, "");
}

//去右空格
function RTrim(str) {
    return str.replace(/\s*$/g, "");
}

function getLengthB(data) {
    var i,cnt = 0;
    for (i = 0; i < data.length; i++) {
        if (escape(data.charAt(i)).length >= 4) {
            if (escape(data.charAt(i)) >= "%uFF65" && escape(data.charAt(i)) <= "%uFF9F") {
                cnt++;
            } else {
                cnt += 3;
            }
        } else {
            cnt++;
        }
    }

    return cnt;
}


  








